Contents | Index | < Browse | Browse >
Subject: Bones lessons learned
Date: Wed, 18 May 94 14:43:00 PDT
From: "Decker, Mark" <Decker@segaoa.COM>

First, thanks to Lesk for his bones example description.  I read through it 
yesterday and went home to try it out from memory when I finally got back to 
my Amiga.  I stumbled a couple times in the process, but I learned a few 
things that might help somebody else along.

1.    When grouping axes together into bones, make sure you are in Pick 
Objects mode, not Pick Groups.

2.    Make sure you are using the STATES Group command, not the Object Group 
command.

3.    Once you are in Pick Objects, pick first the parent axis, then the 
child axis.  In Lesk's tube example, if the axes are numbered from top to 
bottom, first pick axis number two, then hold down shift and pick axis 
number one and group.  Next pick axis number three, then hold down shift and 
pick axis number 2, and so on down, selecting the object itself followed by 
the "root" bone and grouping them last.  When I first tried this I was using 
the bounding box to pick both axes at once, and I think it may have been 
picking them in the wrong order.

4.    It helps immensely to move any axes out of the way (shift M moves the 
axis of an object but leaves the object in place) so that they do not 
overlap while grouping.  Once the grouping is correct, you can move the axis 
back into place without affecting the grouping.

5.    Subgroup assignment is probably the trickiest procedure and was at the 
start the hardest part for me to grasp.  It has not been well explained to 
date, but I'll see if I can help without muddying the waters any further 
:-).  Each axis gets two subgroups assigned to it, helpfully referred to as 
"Big" and "Small".  To the best of my understanding, the Big subgroup is the 
set of all faces which will be affected by motion of the axis.  If a face is 
not in the Big subgroup, its never going to change no matter what that 
particular axis does.  The Small subgroup is a subset of the Big subgroup, 
which means it can only contain faces which are also in the Big subgroup, 
but usually won't contain all of them.  The Small subgroup moves and rotates 
with the axis, but all of its faces keep their shape and orientation with 
respect to each other.
      So if the faces outside the Big subgroup don't change, and the faces 
inside the Small subgroup don't change shape, all that's left is the faces 
which ARE in the Big subgroup, but ARE NOT in the Small subgroup.  These 
faces form the actual joint, and actually stretch and deform to keep the 
other two sets (the outside and the Small subgroup) smoothly connected.
    Maybe an example will help.  Think of a robotoid arm with no fingers, no 
wrist.  It has two parts, a forearm and an upper arm, and hence two bones 
(axes).  The parent axis (bone) sits at the center of the shoulder, with its 
Z axis pointing at the elbow.  The child axis sits at the center of the 
elbow, with its Z axis pointing at what in a more highly evolved robotoid 
would be the hand.
    You need two subgroups for each bone.  Lets start with the forearm.  The 
Big subgroup for the forearm will include all of the forearm and just a 
little of the upper arm above the elbow, enough to allow the joint to 
stretch to maintain a smooth connection.  The Small subgroup will contain 
most of the forearm, up to just below the elbow.  The faces around the elbow 
which are in the Big subgroup but are not in the Small subgroup will be the 
ones which stretch and deform to allow the joint to connect smoothly.
    On the upper arm, the Big subgroup will contain all of the forearm, all 
of the upper arm, and a little of the shoulder it is attached to.  The Small 
subgroup contains all of the forearm, and most of the upper arm up to just 
below the shoulder.  Again, it is the faces between these two where all of 
the deformation takes place.

6.    Once your grouping is all set up, go back to Pick Groups and pick the 
actual object which is the parent of all these bones.  All the axes should 
be turn blue (in the default color scheme) to indicate that they have been 
picked as well.  Then create your "DEFAULT" state, being sure to select both 
Shape and Groups.  You may need to select properties as well if you want to 
do brush or texture tacking, but I'm still having problems with this myself, 
so I'm not sure.

7.    In order to manipulate the bones, you need to be in Pick Groups mode.  
You have to pick the axis you want to manipulate, rotate (or move??) it, and 
accept the change.  To see the result you have to pick the base object again 
(still in Group mode) and select Update Bones and it will then warp your 
object to conform to the new bone positions.

This has gotten a lot more long winded than I intended, but I hope it helps 
clarify a few things for someone.

Mark Decker

mark.decker@segaoa.com
Software Engineer
Sega of America Inc.

If Sega thought I had thoughts, they would certainly disavow all knowledge 
of them.



                           -=> RETURN TO CONTENTS!<=-